﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Infrastructure.Core;

namespace SMG.Domain.Model.Program
{
    /// <summary>
    /// 节目信息
    /// </summary>
    public class ProgramInfo : AggregateRoot
    {
        /// <summary>
        /// 节目单条目id
        /// </summary>
        public String BillId { get; set; }
        /// <summary>
        /// 节目序号
        /// </summary>
        public String ItemIndex { get; set; }
        /// <summary>
        /// 节目标题
        /// </summary>
        public String ProgramTitle { get; set; }
        /// <summary>
        /// 播出日期
        /// 格式yyyy-MM-dd
        /// </summary>
        public String PlayDate { get; set; }
        /// <summary>
        /// 播出时间
        /// 格式hh:mm:ss:ff
        /// </summary>
        public String PlayTime { get; set; }
        /// <summary>
        /// 条目类型
        /// int,0普通节目；1广告段
        /// </summary>
        public String ItemType { get; set; }
        /// <summary>
        /// 节目代码
        /// 24位，节目及广告段长度统一
        /// </summary>
        public String ProgramId { get; set; }
        /// <summary>
        /// 时间码起始点
        /// int,单位：帧
        /// </summary>
        public Int32 InPoint { get; set; }
        /// <summary>
        /// 时间码结束点
        /// int,单位：帧
        /// </summary>
        public Int32 OutPoint { get; set; }
        /// <summary>
        /// 播出长度
        /// 播出长度=时间码结束点-时间码起始点
        /// </summary>
        public String Duration { get; set; }

        public String TapeType { get; set; }
        /// <summary>
        /// 播放设备id
        /// 唯一标识一个播出设备。对于直播，信号准备会调度通道，即指定id,
        /// 对于热炒录像机，当某些频道配有固有录像机时直接读取配置,当使用快速共享时还是由快速共享分配录像机,
        /// 指定通道；对于热炒服务器节目，指定相应的热炒服务器的id。
        /// </summary>
        public String PlayDeviceId { get; set; }
        /// <summary>
        /// 演播室名称
        /// </summary>
        public String StudioName { get; set; }
        /// <summary>
        /// 播出方式
        /// </summary>
        public String PlayPattern { get; set; }
        public String TapeId { get; set; }
        public String ProgramSource { get; set; }
        /// <summary>
        /// 磁带入点
        /// </summary>
        public String TapeInPoint { get; set; }
        /// <summary>
        /// 磁带出点
        /// </summary>
        public String TapeOutPoint { get; set; }
        /// <summary>
        /// 播出类型
        /// int,1定时播,2顺播,3手工触发,4定时插播,5相对插播,6连续插播,7手工插播
        /// </summary>
        public String PlayMode { get; set; }
        /// <summary>
        /// 节目类型
        /// </summary>
        public String ProgramType { get; set; }
        /// <summary>
        /// 重播标志
        /// int, 0未知,1首播,2重播,3明日要重播,4隔日重播
        /// </summary>
        public String ReplaySymbol { get; set; }
        /// <summary>
        /// 入库形式
        /// int,0 文件迁移，1磁带上载
        /// </summary>
        public String ProgramLibMode { get; set; }

        //public List<ProgramKey> ProgramKey { get; set; }
        /// <summary>
        /// 幅型变换
        /// int,0空,1信封,2切边,3变形
        /// </summary>
        public String Afd { get; set; }
        /// <summary>
        /// 高标清版本标识
        /// 0 标清；1 高清
        /// </summary>
        public String IsHD { get; set; }
        /// <summary>
        /// 注释
        /// </summary>
        public String Notation { get; set; }
        /// <summary>
        /// 0不需要CueTone,1需要
        /// </summary>
        public String CueTone { get; set; }
    }
}
